home *** CD-ROM | disk | FTP | other *** search
- IF1
- INCLUDE MACRO.LIB
- ENDIF
- DSEG SEGMENT AT 40H
- ORG 1AH
- BUFFER_HEAD DW ?
- BUFFER_TAIL DW ?
- KB_BUFFER DW 16 DUP(?)
- KB_BUFFER_END DW ?
- DSEG ENDS
- CODE SEGMENT PARA PUBLIC
- ASSUME CS:CODE
- ORG 100H
- START PROC NEAR
- JMP INITPGM
- LOGBYT DB 0
- GARBUF DB 1,0,0,0
- NEWO17: MOV LOGBYT,1
- OLDI17: DB 352Q
- OLDO17 DW 0
- OLDS17 DW 0
- ASSUME DS:CODE
- INITPGM:
- MOV AX,3517H
- INT 21H
- MOV OLDO17,BX
- MOV BX,ES
- MOV OLDS17,BX
- MOV DX,OFFSET NEWO17
- MOV AX,2517H
- INT 21H
- CLCI 5DH,'ON '
- JZ LOGON
- CLCI 5DH,'OFF '
- JZ LOGOFF
- CALL TSTLB
- JZ DSPOFF
- CALL DSPLY
- DB 'LOG ON$'
- DSPOFF: CALL DSPLY
- DB 'LOG OFF$'
- DSPLY: CALL UNHOOK
- POP DX
- DOS 9
- MOV AL,LOGBYT
- DOS 76
- LOGON: CALL SWLB
- JZ LOGON
- JMP PGMXIT
- LOGOFF: CALL SWLB
- JNZ LOGOFF
- PGMXIT:
- UNHOOK: PUSH DS
- MOV DX,OLDO17
- MOV AX,OLDS17
- MOV DS,AX
- MOV AX,2517H
- INT 21H
- POP DS
- RET
- ASSUME DS:DSEG
- SWLB: MOV AX,40H
- MOV DS,AX
- MOV BX,BUFFER_TAIL
- CLI
- MOV WORD PTR [BX],1910H
- CALL BUMP
- MOV WORD PTR [BX],1C0DH
- CALL BUMP
- STI
- MOV AX,CS
- MOV DS,AX
- ASSUME DS:CODE
- DOS 10,GARBUF
- TSTLB: MOV LOGBYT,0
- MOV DL,' '
- DOS 2
- MOV DL,8
- DOS 2
- CMP LOGBYT,0
- RET
- ASSUME DS:DSEG
- BUMP: INCM BX,BX
- CMP BX,OFFSET KB_BUFFER_END
- JNE BUMPX
- MOV BX,OFFSET KB_BUFFER
- BUMPX: MOV BUFFER_TAIL,BX
- RET
- ASSUME DS:CODE
- MSC142: POP BX
- PUSHM BX,DX
- MOV DL,CH
- SUB DH,DH
- ADD BX,DX
- POP DX
- MOV BP,SP
- XCHG BX,[BP]
- MSC143: MOV SI,DX
- MOV AL,[SI]
- CMP AL,[BX]
- JZ L_1
- RET
- L_1:
- INCM DX,BX
- DEC CH
- JNZ MSC143
- RET
- START ENDP
- CODE ENDS
- END START
- MOV AL,[SI]
- CMP AL,[BX]
- JZ L_1
- RET
- L_1:
- INCM DX,BX
- DEC CH
- JNZ MSC143
- RET
- ST